﻿using System;
using System.Collections.Generic;
using System.Text;
using System.Linq;

namespace AlgorithmTest
{
    // T_[四个数字排序]_[算法名]
    public class T_0149_GetSum : IAlgorithm
    {
        // 两整数之和

        // 给你两个整数 a 和 b ，不使用 运算符 + 和 - ​​​​​​​，计算并返回两整数之和。

        // 提示：
        //  -1000 <= a, b <= 1000

        public void Test()
        {
            Console.WriteLine(GetSum(1, 2));
        }

        // 算法
        public int GetSum(int a, int b)
        {
            if (b == 0)
                return a;
            //本位和进位左移一位相加，直到进位为0
            return GetSum(a ^ b, (a & b) << 1);
        }
    }
}
